﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace XmlStudio.Logger.Interfaces
{
    /// <summary>
    /// Specifies interface for logger.
    /// </summary>
    public interface ILog
    {
        /// <summary>
        /// Starts the logger.
        /// </summary>
        /// <param name="path">Path to the log file.</param>
        /// <returns>Reference to the logger.</returns>
        ILog Start(string path);
        
        /// <summary>
        /// Gets the current log writer.
        /// </summary>
        ILogWriter CurrentLogWriter { get; }

        /// <summary>
        /// Determines whether the log is started.
        /// </summary>
        bool IsStarted { get; }

        /// <summary>
        /// Gets the path to the log file.
        /// </summary>
        string Path { get; }

        /// <summary>
        /// Closes log.
        /// </summary>
        void DisposeLog();
    }
}
